In a clustered or distributed application server environment, some form of data replication is useful in order to distribute configuration and deployment information from an administration (Admin) server to one or more managed servers within its domain. The typical requirements for such a data replication process is to be able to distribute data items over point-to-point connections, i.e., using TCP for example, that provides for a measure of flow control. Data replication allows managed servers to persistently cache data on local disks, and speeds server startup by reducing the amount of data to be transferred. Storing data locally on each server also allows independent server startup and/or restart when the Admin server is unavailable, unreachable, or in a failed condition.
However, updates and changes to a domain configuration need to be distributed to the servers to which the changes are applicable in a manner that maintains the consistency of configuration of the domain. Some changes need to be consistent across the entire domain while others need to be consistent within clusters. Consistency is also crucial to the application deployment and redeployment process because services like availability, failover, load-balancing and in-memory replication are scoped to a cluster and not the entire domain.